package estate;

import java.util.HashMap;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Wlodek
 */

public class DekoratorBudynkowy extends Dekorator {


    private int rok_budowy;
    private String stan_prawny;
    private int liczba_pieter;
    private int liczba_pokoi;
    private int stan_budynu;
    private int typ_zabudowy;
    private String dzielnica;
    private String ulica;
    private int kod_pocztowy;
    private int numer_budynku;

public int getRokBudowy(){
	return rok_budowy;
}
public String getStanPrawny(){
	return stan_prawny;
}
public int getLiczbaPieter(){
	return liczba_pieter;
}
public int getliczbaPokoi(){
	return liczba_pokoi;
}
public int getStanBudynu(){
	return stan_budynu;
}
public int getTypZabudowy(){
	return typ_zabudowy;
}
public String getDzielnica(){
	return dzielnica;
}
public String getUlica(){
	return ulica;
}
public int getKodPocztowy(){
	return kod_pocztowy;
}
public int getNumerBudynku(){
	return numer_budynku;
}

    @Override
    public void dekoruj(HashMap<String,Object> hm){
        this.rok_budowy=(Integer)hm.get("rok_budowy");
        this.stan_prawny=(String)hm.get("stan_prawny");
        this.liczba_pieter=(Integer)hm.get("liczba_pieter");
        this.liczba_pokoi=(Integer)hm.get("liczba_pokoi");
        this.stan_budynu=(Integer)hm.get("stan_budynu");
        this.typ_zabudowy=(Integer)hm.get("typ_zabudowy");
        this.dzielnica=(String)hm.get("dzielnica");
        this.ulica=(String)hm.get("ulica");
        this.kod_pocztowy=(Integer)hm.get("kod_pocztowy");
        this.numer_budynku=(Integer)hm.get("numer_budynku");

        this.element.dekoruj(hm);
    }

    public DekoratorBudynkowy(Estate e){
        super(e);
    }

    @Override
    public int getTypOferty() {
        return ((Oferta)this.element).getTypOferty();
    }

    public boolean equals(Estate e){
        DekoratorBudynkowy pe = (DekoratorBudynkowy)e;
    if(
        this.rok_budowy==pe.getRokBudowy() &&
        this.stan_prawny.equals(pe.getStanPrawny()) &&
        this.liczba_pieter==pe.getLiczbaPieter() &&
        this.liczba_pokoi==pe.liczba_pokoi &&
        this.stan_budynu==pe.stan_budynu &&
        this.typ_zabudowy==pe.typ_zabudowy &&
        this.dzielnica.equals(pe.dzielnica) &&
        this.ulica.equals(pe.ulica) &&
        this.kod_pocztowy==pe.kod_pocztowy &&
        this.numer_budynku==pe.numer_budynku &&
                ((Oferta)this.element).equals(pe.element)
        )
        return true;
    else return false;
    }
}
